Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one system may cause bugs to emerge in another system.
FIG. 1 depicts an example of a prior art debugging application display. The debugging application display 102 provides user controls for stepping through a portion of program code to debug. The debugging application display 102 includes controls 104, 106, 108 for manipulating the pace of execution of the program code. A continue control 104 enables a user to command continued execution of the program code until a certain point in the program code is reached, an error condition is reached, or execution is completed. A step control 106 enables a user to command the next instruction of the program code be executed. A next instruction 108 enables a user to command continued execution of the program code until the next event is reached. The debugging application display 102 further provides an execution state information display 110. The execution state information display 110 may display a variety of data to a user including information regarding a current instruction being executed, a next instruction to be executed, contents of memory locations, and other data. Using the controls 104, 106, 108, the user can work through the execution of the program code at a desired pace to view execute state information to help identify any defects in the program code.